SlideShare una empresa de Scribd logo
1 de 46
Groovy&Grails: desarrollorápido de aplicaciones Actualización del profesorado de la familia profesional Informática y Comunicaciones 9 de Septiembre de 2010
¿QuéesGroovy&Grails?	 Combinación perfecta para el desarrollorápido de aplicaciones Groovy Lenguaje de programación Grails Entornocompleto de desarrollo (framework MVC, base de datos, tests, contenedor web) Groovy&Grails:desarrollo rápido de aplicaciones-2 © 2010 CEFIRE: Actualización del profesorado
¿Quées Groovy?	 Groovy en ingléssignificagenial Lenguaje de la plataforma Java Lenguaje de programaciónágilydinámico Característicastípicas de lenguajescomo Python, Ruby o Smalltalk Groovy&Grails:desarrollo rápido de aplicaciones-3 © 2010 CEFIRE: Actualización del profesorado
¿Quées Groovy?	 Sintaxistípica de Java Superclase de Java Evita la ceremonia de Java Groovy&Grails:desarrollo rápido de aplicaciones-4 © 2010 CEFIRE: Actualización del profesorado
¿A quiénvadirigido Groovy? A los programadores Java A los programadores de scripts A los programadoreságilesyextremos Groovy&Grails:desarrollo rápido de aplicaciones-5 © 2010 CEFIRE: Actualización del profesorado
Comparando Java y Groovy Java & Groovy Mecanismo de paquetes Sentencias Definición de clasesymétodos Estructuras de control Operadores, asignacionesyexpresiones Manejo de excepciones Declaración de literales Instanciación de objetosyllámadas a métodos ,[object Object]
Nuevasexpresionesyoperadores
Nuevasformas de declararobjetos
Nuevasestructuras de control
Nuevostipos de datos con susoperadoresyexpresiones
Todoes un objetoGroovy&Grails:desarrollo rápido de aplicaciones-6 © 2010 CEFIRE: Actualización del profesorado
Características de Groovy Brevedad del lenguaje Groovy evita la ceremoníaqueacompaña a Java Aumenta la expresividad del lenguaje(se dice más con menos) Importaautomáticamentevariospaquetes Groovy&Grails:desarrollo rápido de aplicaciones-7 © 2010 CEFIRE: Actualización del profesorado
El código de Groovy Declaración de clases class Libro {  	private String titulo Libro (String elTitulo){ titulo = elTitulo 	} 	String getTitulo(){ 		return titulo 	} } Groovy&Grails:desarrollo rápido de aplicaciones-8 © 2010 CEFIRE: Actualización del profesorado
El código de Groovy Scripts en Groovy Librocgg = new Libro('CursoGroovyGrails') assert cgg.getTitulo() == 'CursoGroovyGrails’ assert getTituloAlReves(cgg) == 'sliarGyvoorGosruC' String getTituloAlReves(libro) { titulo = libro.getTitulo() 	return titulo.reverse() } Groovy&Grails:desarrollo rápido de aplicaciones-9 © 2010 CEFIRE: Actualización del profesorado
El código de Groovy GroovyBeans /*Un Bean en Java*/ class Libro{ 	String titulo; 	String getTitulo(){ 		return this.titulo; 	} 	void setTitulo(Stringstr){ this.titulo = new String(str);	 	} } Groovy&Grails:desarrollo rápido de aplicaciones-10 © 2010 CEFIRE: Actualización del profesorado
El código de Groovy GroovyBeans /*Un Bean en Groovy*/ class Libro{ 	String titulo } Groovy&Grails:desarrollo rápido de aplicaciones-11 © 2010 CEFIRE: Actualización del profesorado
El código de Groovy Cadenas de texto GString def part1 = 'groovy' def part2 = ['g','r','a','i','l','s'] assert "me gusta groovy grails" == "me gusta $part1 ${part2.join()}" Groovy&Grails:desarrollo rápido de aplicaciones-12 © 2010 CEFIRE: Actualización del profesorado
El código de Groovy Groovy es un lenguaje que implementa un tipado dinámico de datos Groovy puede encargarse de asignarle el tipo de dato a nuestras variables Groovy&Grails:desarrollo rápido de aplicaciones-13 © 2010 CEFIRE: Actualización del profesorado
El código de Groovy Tipado dinámico de datos def a = 2 //java.lang.Integer def b = 0.4f //java.lang.Float int c = 3 //java.lang.Integer float d = 4 //java.lang.Float Integer e = 6 //java.lang.Integer String f = ‘hola’ //java.lang.String Groovy&Grails:desarrollo rápido de aplicaciones-14 © 2010 CEFIRE: Actualización del profesorado
Estructuras de control en Groovy Los típicosif-else, while, switch y try-catch-finally El bloqueforutiliza la notacionfor (i in x) { cuerpo}  for(i in 1..10) printlni for(i in [1,2,3,4,5,6,7,8,9,10]) printlni Groovy&Grails:desarrollo rápido de aplicaciones-15 © 2010 CEFIRE: Actualización del profesorado
Estructuras de control en Groovy O mediante closures def alumnos = ['Pedro','Miguel','Alejandro','Elena'] alumnos.each{nombre -> printlnnombre} Groovy&Grails:desarrollo rápido de aplicaciones-16 © 2010 CEFIRE: Actualización del profesorado
Groovy en el entorno Java Groovy puede ser ejecutado en la JVM: Compilando con groovyc Sin compilar Groovy&Grails:desarrollo rápido de aplicaciones-17 © 2010 CEFIRE: Actualización del profesorado
GDK: la librería Groovy GDK esunaextensión a la librería JDK Facilita el acceso a base de datosyprocesamiento de XML Extiendelasfuncionalidades de Java Groovy&Grails:desarrollo rápido de aplicaciones-18 © 2010 CEFIRE: Actualización del profesorado
¿Quées Grails? “Grails es un framework para el desarrollo de aplicaciónes web basado en el lenguaje de programación Groovy, que a suvez se basa en la Plataforma Java” Se basa en los paradigmasCoC (Convention over Configuration)yDRY (Don’t Repeat Yourself) Groovy&Grails:desarrollo rápido de aplicaciones-19 © 2010 CEFIRE: Actualización del profesorado
¿Quées Grails? Basado en el patrónModelo Vista Controlador ModeloClases de dominio Controladores Vista Páginas GSP (Groovy Server Pages) Groovy&Grails:desarrollo rápido de aplicaciones-20 © 2010 CEFIRE: Actualización del profesorado
¿Quées Grails? El programador se olvida de determinadosaspectos de configuración Se acortan los tiempos de desarrollo Grails es un framework muyágil Groovy&Grails:desarrollo rápido de aplicaciones-21 © 2010 CEFIRE: Actualización del profesorado
¿Quées Grails? Grails no sóloes un framework de desarrollo web quesigue el patrón MVC, sinoqueesunaplataformacompleta de desarrollo Contenedor/servidor web Gestor de base de datos Empaquetado de la aplicación Realización de tests unitarios, de integración y funcionales Groovy&Grails:desarrollo rápido de aplicaciones-22 © 2010 CEFIRE: Actualización del profesorado
Software de códigoabierto Grails no sufre del síndromeNIH (Not Invented Here)eintegralasmejoressoluciones de software libreparaconseguir un framework muyrobusto Groovy&Grails:desarrollo rápido de aplicaciones-23 © 2010 CEFIRE: Actualización del profesorado
Software de códigoabierto Groovy Lenguajedinámico Potentey flexible Sintaxissencilla Integración con Java Groovy&Grails:desarrollo rápido de aplicaciones-24 © 2010 CEFIRE: Actualización del profesorado
Software de códigoabierto Framework Spring Framework ampliamente utilizado por los desarrolladores Java Muchos años de experiencia Groovy&Grails:desarrollo rápido de aplicaciones-25 © 2010 CEFIRE: Actualización del profesorado
Software de códigoabierto Hibernate Framework de persistenciaobjeto-relacional Es la base de GORM Mapeaclases de dominio contra lastablas de una base de datos Groovy&Grails:desarrollo rápido de aplicaciones-26 © 2010 CEFIRE: Actualización del profesorado
Software de códigoabierto SiteMesh Renderizado HTML Patrón de diseñoDecorator Groovy&Grails:desarrollo rápido de aplicaciones-27 © 2010 CEFIRE: Actualización del profesorado
Software de códigoabierto Frameworks AJAX Script.aculo.us jQuery Prototype Groovy&Grails:desarrollo rápido de aplicaciones-28 © 2010 CEFIRE: Actualización del profesorado
Software de códigoabierto Tomcat Contenedor web No es el únicosobre el quefunciona Grails Groovy&Grails:desarrollo rápido de aplicaciones-29 © 2010 CEFIRE: Actualización del profesorado
Software de códigoabierto HSQLDB Gestor de base de datos Almacenamiento en memoriao en disco Groovy&Grails:desarrollo rápido de aplicaciones-30 © 2010 CEFIRE: Actualización del profesorado
Software de códigoabierto JUnit Framework para la realización de tests unitarios y de integración Muyextendido en Java Groovy&Grails:desarrollo rápido de aplicaciones-31 © 2010 CEFIRE: Actualización del profesorado
Arquitectura Groovy&Grails:desarrollo rápido de aplicaciones-32 © 2010 CEFIRE: Actualización del profesorado
Arquitectura Herramientas en líneade comandos (GANT) Facilita la escritura de código Facilita la gestión de nuestrosproyectos Gant es un sistema de automatización de tareasbasado en Apache Ant Groovy&Grails:desarrollo rápido de aplicaciones-33 © 2010 CEFIRE: Actualización del profesorado
Arquitectura Ejecución de un proyecto en Grails Groovy&Grails:desarrollo rápido de aplicaciones-34 © 2010 CEFIRE: Actualización del profesorado
Características de Grails Scaffolding     “Generaciónautomática de códigoparalascuatrooperacionesbásicas de cualquieraplicación, que son la creación, lectura, ediciónyborrado” Groovy&Grails:desarrollo rápido de aplicaciones-35 © 2010 CEFIRE: Actualización del profesorado
Características de Grails Scaffolding Clase de dominio Groovy&Grails:desarrollo rápido de aplicaciones-36 © 2010 CEFIRE: Actualización del profesorado class Libro{ 	String titulo 	static constraints = {        	title(blank:false) 	} }
Características de Grails Scaffolding dinámico Controlador de la clase Libro Vistas de la clase Libro: creadas al vuelo Groovy&Grails:desarrollo rápido de aplicaciones-37 © 2010 CEFIRE: Actualización del profesorado class LibroController{ def scaffold = Libro  }
Características de Grails Scaffolding estático Controlador de la clase Libro Groovy&Grails:desarrollo rápido de aplicaciones-38 © 2010 CEFIRE: Actualización del profesorado grails generate-all Libro class LibroController{ def index = {…} 	def list = {…} 	def show = {…} def create = {…} 	def save = {…} 	…. }
Características de Grails Scaffolding estático Vistas de la clase Libro · create.gsp · edit.gsp · list.gsp · show.gsp Groovy&Grails:desarrollo rápido de aplicaciones-39 © 2010 CEFIRE: Actualización del profesorado grails generate-all Libro
Características de Grails Tests Tests unitarios Tests de integración Tests funcionales Groovy&Grails:desarrollo rápido de aplicaciones-40 © 2010 CEFIRE: Actualización del profesorado
Características de Grails Mapeoobjeto-relacional GORM (Grails Object Relational Mapping) ,[object Object]

Más contenido relacionado

La actualidad más candente

Jobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket
 
PHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en AndroidPHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en AndroidIrontec
 
HTML5 en el universo Windows (Apps universales)
HTML5 en el universo Windows (Apps universales)HTML5 en el universo Windows (Apps universales)
HTML5 en el universo Windows (Apps universales)Quique Fdez Guerra
 
El proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open SourceEl proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open SourceJose Juan R. Zuñiga
 
Webinar 5 net5-2021
Webinar 5 net5-2021Webinar 5 net5-2021
Webinar 5 net5-2021atSistemas
 

La actualidad más candente (10)

Spring boot + spock
Spring boot + spockSpring boot + spock
Spring boot + spock
 
Java poliglota
Java poliglotaJava poliglota
Java poliglota
 
grails.org.mx Primera Reunion
grails.org.mx Primera Reuniongrails.org.mx Primera Reunion
grails.org.mx Primera Reunion
 
Redefiniendo el MVC con Grails
Redefiniendo el MVC con GrailsRedefiniendo el MVC con Grails
Redefiniendo el MVC con Grails
 
Jobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto real
 
Introducción a groovy & grails
Introducción a groovy & grailsIntroducción a groovy & grails
Introducción a groovy & grails
 
PHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en AndroidPHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en Android
 
HTML5 en el universo Windows (Apps universales)
HTML5 en el universo Windows (Apps universales)HTML5 en el universo Windows (Apps universales)
HTML5 en el universo Windows (Apps universales)
 
El proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open SourceEl proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open Source
 
Webinar 5 net5-2021
Webinar 5 net5-2021Webinar 5 net5-2021
Webinar 5 net5-2021
 

Destacado

Certificaciones Tecnológicas: La acreditación del experto
Certificaciones Tecnológicas: La acreditación del expertoCertificaciones Tecnológicas: La acreditación del experto
Certificaciones Tecnológicas: La acreditación del expertoJose Manuel Ortega Candel
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesFran García
 
Manual de uso de la web 2.0
Manual de uso de la web 2.0Manual de uso de la web 2.0
Manual de uso de la web 2.0Domingo Gallardo
 
Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Opersys inc.
 
Framework de test spock
Framework de test spock Framework de test spock
Framework de test spock Fran García
 
Metodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de softwareMetodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de softwareDomingo Gallardo
 
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Chema Alonso
 
Configurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoConfigurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoChema Alonso
 
Dorking & Pentesting with Tacyt
Dorking & Pentesting with TacytDorking & Pentesting with Tacyt
Dorking & Pentesting with TacytChema Alonso
 

Destacado (20)

Inteligencia Colectiva
Inteligencia ColectivaInteligencia Colectiva
Inteligencia Colectiva
 
Certificaciones tecnológicas
Certificaciones tecnológicasCertificaciones tecnológicas
Certificaciones tecnológicas
 
Seguridad en dispositivos móviles
Seguridad en dispositivos móvilesSeguridad en dispositivos móviles
Seguridad en dispositivos móviles
 
Privacidad internet
Privacidad internetPrivacidad internet
Privacidad internet
 
Certificaciones Tecnológicas: La acreditación del experto
Certificaciones Tecnológicas: La acreditación del expertoCertificaciones Tecnológicas: La acreditación del experto
Certificaciones Tecnológicas: La acreditación del experto
 
Por su seguridad
Por su seguridadPor su seguridad
Por su seguridad
 
Herramientas gestion proyectos
Herramientas gestion proyectosHerramientas gestion proyectos
Herramientas gestion proyectos
 
Kanban
KanbanKanban
Kanban
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicaciones
 
Git and git flow
Git and git flowGit and git flow
Git and git flow
 
Manual de uso de la web 2.0
Manual de uso de la web 2.0Manual de uso de la web 2.0
Manual de uso de la web 2.0
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013
 
Framework de test spock
Framework de test spock Framework de test spock
Framework de test spock
 
Metodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de softwareMetodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de software
 
Testing NodeJS Security
Testing NodeJS SecurityTesting NodeJS Security
Testing NodeJS Security
 
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
 
Configurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoConfigurar y utilizar Latch en Magento
Configurar y utilizar Latch en Magento
 
Footprinting tools for security auditors
Footprinting tools for security auditorsFootprinting tools for security auditors
Footprinting tools for security auditors
 
Dorking & Pentesting with Tacyt
Dorking & Pentesting with TacytDorking & Pentesting with Tacyt
Dorking & Pentesting with Tacyt
 

Similar a Groovy&Grails: desarrollo rápido de aplicaciones

Grails en Expo FISI 2011
Grails en Expo FISI 2011Grails en Expo FISI 2011
Grails en Expo FISI 2011jose diaz
 
Webinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaWebinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaDomingo Suarez Torres
 
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
 
Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket
 
Programacion Web UGR - Tema 7.pdf
Programacion Web UGR - Tema 7.pdfProgramacion Web UGR - Tema 7.pdf
Programacion Web UGR - Tema 7.pdfAnonymousNdBOr4
 
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfonycsalazart
 
Introduction a Groovy
Introduction a  GroovyIntroduction a  Groovy
Introduction a GroovyAlex Fuentes
 
Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011
Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011
Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011Fátima Casaú Pérez
 
Desarrollo móvil híbrido bien entendido
Desarrollo móvil híbrido bien entendidoDesarrollo móvil híbrido bien entendido
Desarrollo móvil híbrido bien entendidoJosé Manuel López
 
NET5 el nuevo framework unificado para gobernarlos a todos
NET5 el nuevo framework unificado para gobernarlos a todosNET5 el nuevo framework unificado para gobernarlos a todos
NET5 el nuevo framework unificado para gobernarlos a todosSanti Macias Rodriguez
 
HTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOYHTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOYJuan Eladio Sánchez Rosas
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsEsteban Saavedra
 
Remote System Controller with Android technologies
Remote System Controller with Android technologiesRemote System Controller with Android technologies
Remote System Controller with Android technologiesMiguel Garcia Ponce
 

Similar a Groovy&Grails: desarrollo rápido de aplicaciones (20)

Grails en Expo FISI 2011
Grails en Expo FISI 2011Grails en Expo FISI 2011
Grails en Expo FISI 2011
 
Webinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaWebinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador Java
 
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!
 
Eleva tu capacidad con Groovy
Eleva tu capacidad con GroovyEleva tu capacidad con Groovy
Eleva tu capacidad con Groovy
 
Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX Madrid
 
Programacion Web UGR - Tema 7.pdf
Programacion Web UGR - Tema 7.pdfProgramacion Web UGR - Tema 7.pdf
Programacion Web UGR - Tema 7.pdf
 
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!
 
Swift
SwiftSwift
Swift
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfony
 
Introduction a Groovy
Introduction a  GroovyIntroduction a  Groovy
Introduction a Groovy
 
Introducción a Java FX
Introducción a Java FXIntroducción a Java FX
Introducción a Java FX
 
Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011
Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011
Taller Testing en Grails con Grails y Geb (WebDriver) - Springio I/O 2011
 
Desarrollo móvil híbrido bien entendido
Desarrollo móvil híbrido bien entendidoDesarrollo móvil híbrido bien entendido
Desarrollo móvil híbrido bien entendido
 
NET5 el nuevo framework unificado para gobernarlos a todos
NET5 el nuevo framework unificado para gobernarlos a todosNET5 el nuevo framework unificado para gobernarlos a todos
NET5 el nuevo framework unificado para gobernarlos a todos
 
HTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOYHTML5 y los desafíos del desarrollo web de HOY
HTML5 y los desafíos del desarrollo web de HOY
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
Taller Groovy
Taller GroovyTaller Groovy
Taller Groovy
 
Remote System Controller with Android technologies
Remote System Controller with Android technologiesRemote System Controller with Android technologies
Remote System Controller with Android technologies
 
Grails barcamp 2013
Grails barcamp 2013Grails barcamp 2013
Grails barcamp 2013
 
Arquitectura
Arquitectura Arquitectura
Arquitectura
 

Último

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORASMarc Liust
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8antoniopalmieriluna
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaJadeVilcscordova
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfaxelv9257
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfYanitza28
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...axelv9257
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxVICTORMANUELBEASAGUI
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionEmanuelMuoz11
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfYanitza28
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptxdulcemonterroza
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendidaLuis Francisco Reyes Aceves
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxgustavovasquezv56
 

Último (17)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 

Groovy&Grails: desarrollo rápido de aplicaciones

  • 1. Groovy&Grails: desarrollorápido de aplicaciones Actualización del profesorado de la familia profesional Informática y Comunicaciones 9 de Septiembre de 2010
  • 2. ¿QuéesGroovy&Grails? Combinación perfecta para el desarrollorápido de aplicaciones Groovy Lenguaje de programación Grails Entornocompleto de desarrollo (framework MVC, base de datos, tests, contenedor web) Groovy&Grails:desarrollo rápido de aplicaciones-2 © 2010 CEFIRE: Actualización del profesorado
  • 3. ¿Quées Groovy? Groovy en ingléssignificagenial Lenguaje de la plataforma Java Lenguaje de programaciónágilydinámico Característicastípicas de lenguajescomo Python, Ruby o Smalltalk Groovy&Grails:desarrollo rápido de aplicaciones-3 © 2010 CEFIRE: Actualización del profesorado
  • 4. ¿Quées Groovy? Sintaxistípica de Java Superclase de Java Evita la ceremonia de Java Groovy&Grails:desarrollo rápido de aplicaciones-4 © 2010 CEFIRE: Actualización del profesorado
  • 5. ¿A quiénvadirigido Groovy? A los programadores Java A los programadores de scripts A los programadoreságilesyextremos Groovy&Grails:desarrollo rápido de aplicaciones-5 © 2010 CEFIRE: Actualización del profesorado
  • 6.
  • 10. Nuevostipos de datos con susoperadoresyexpresiones
  • 11. Todoes un objetoGroovy&Grails:desarrollo rápido de aplicaciones-6 © 2010 CEFIRE: Actualización del profesorado
  • 12. Características de Groovy Brevedad del lenguaje Groovy evita la ceremoníaqueacompaña a Java Aumenta la expresividad del lenguaje(se dice más con menos) Importaautomáticamentevariospaquetes Groovy&Grails:desarrollo rápido de aplicaciones-7 © 2010 CEFIRE: Actualización del profesorado
  • 13. El código de Groovy Declaración de clases class Libro { private String titulo Libro (String elTitulo){ titulo = elTitulo } String getTitulo(){ return titulo } } Groovy&Grails:desarrollo rápido de aplicaciones-8 © 2010 CEFIRE: Actualización del profesorado
  • 14. El código de Groovy Scripts en Groovy Librocgg = new Libro('CursoGroovyGrails') assert cgg.getTitulo() == 'CursoGroovyGrails’ assert getTituloAlReves(cgg) == 'sliarGyvoorGosruC' String getTituloAlReves(libro) { titulo = libro.getTitulo() return titulo.reverse() } Groovy&Grails:desarrollo rápido de aplicaciones-9 © 2010 CEFIRE: Actualización del profesorado
  • 15. El código de Groovy GroovyBeans /*Un Bean en Java*/ class Libro{ String titulo; String getTitulo(){ return this.titulo; } void setTitulo(Stringstr){ this.titulo = new String(str); } } Groovy&Grails:desarrollo rápido de aplicaciones-10 © 2010 CEFIRE: Actualización del profesorado
  • 16. El código de Groovy GroovyBeans /*Un Bean en Groovy*/ class Libro{ String titulo } Groovy&Grails:desarrollo rápido de aplicaciones-11 © 2010 CEFIRE: Actualización del profesorado
  • 17. El código de Groovy Cadenas de texto GString def part1 = 'groovy' def part2 = ['g','r','a','i','l','s'] assert "me gusta groovy grails" == "me gusta $part1 ${part2.join()}" Groovy&Grails:desarrollo rápido de aplicaciones-12 © 2010 CEFIRE: Actualización del profesorado
  • 18. El código de Groovy Groovy es un lenguaje que implementa un tipado dinámico de datos Groovy puede encargarse de asignarle el tipo de dato a nuestras variables Groovy&Grails:desarrollo rápido de aplicaciones-13 © 2010 CEFIRE: Actualización del profesorado
  • 19. El código de Groovy Tipado dinámico de datos def a = 2 //java.lang.Integer def b = 0.4f //java.lang.Float int c = 3 //java.lang.Integer float d = 4 //java.lang.Float Integer e = 6 //java.lang.Integer String f = ‘hola’ //java.lang.String Groovy&Grails:desarrollo rápido de aplicaciones-14 © 2010 CEFIRE: Actualización del profesorado
  • 20. Estructuras de control en Groovy Los típicosif-else, while, switch y try-catch-finally El bloqueforutiliza la notacionfor (i in x) { cuerpo} for(i in 1..10) printlni for(i in [1,2,3,4,5,6,7,8,9,10]) printlni Groovy&Grails:desarrollo rápido de aplicaciones-15 © 2010 CEFIRE: Actualización del profesorado
  • 21. Estructuras de control en Groovy O mediante closures def alumnos = ['Pedro','Miguel','Alejandro','Elena'] alumnos.each{nombre -> printlnnombre} Groovy&Grails:desarrollo rápido de aplicaciones-16 © 2010 CEFIRE: Actualización del profesorado
  • 22. Groovy en el entorno Java Groovy puede ser ejecutado en la JVM: Compilando con groovyc Sin compilar Groovy&Grails:desarrollo rápido de aplicaciones-17 © 2010 CEFIRE: Actualización del profesorado
  • 23. GDK: la librería Groovy GDK esunaextensión a la librería JDK Facilita el acceso a base de datosyprocesamiento de XML Extiendelasfuncionalidades de Java Groovy&Grails:desarrollo rápido de aplicaciones-18 © 2010 CEFIRE: Actualización del profesorado
  • 24. ¿Quées Grails? “Grails es un framework para el desarrollo de aplicaciónes web basado en el lenguaje de programación Groovy, que a suvez se basa en la Plataforma Java” Se basa en los paradigmasCoC (Convention over Configuration)yDRY (Don’t Repeat Yourself) Groovy&Grails:desarrollo rápido de aplicaciones-19 © 2010 CEFIRE: Actualización del profesorado
  • 25. ¿Quées Grails? Basado en el patrónModelo Vista Controlador ModeloClases de dominio Controladores Vista Páginas GSP (Groovy Server Pages) Groovy&Grails:desarrollo rápido de aplicaciones-20 © 2010 CEFIRE: Actualización del profesorado
  • 26. ¿Quées Grails? El programador se olvida de determinadosaspectos de configuración Se acortan los tiempos de desarrollo Grails es un framework muyágil Groovy&Grails:desarrollo rápido de aplicaciones-21 © 2010 CEFIRE: Actualización del profesorado
  • 27. ¿Quées Grails? Grails no sóloes un framework de desarrollo web quesigue el patrón MVC, sinoqueesunaplataformacompleta de desarrollo Contenedor/servidor web Gestor de base de datos Empaquetado de la aplicación Realización de tests unitarios, de integración y funcionales Groovy&Grails:desarrollo rápido de aplicaciones-22 © 2010 CEFIRE: Actualización del profesorado
  • 28. Software de códigoabierto Grails no sufre del síndromeNIH (Not Invented Here)eintegralasmejoressoluciones de software libreparaconseguir un framework muyrobusto Groovy&Grails:desarrollo rápido de aplicaciones-23 © 2010 CEFIRE: Actualización del profesorado
  • 29. Software de códigoabierto Groovy Lenguajedinámico Potentey flexible Sintaxissencilla Integración con Java Groovy&Grails:desarrollo rápido de aplicaciones-24 © 2010 CEFIRE: Actualización del profesorado
  • 30. Software de códigoabierto Framework Spring Framework ampliamente utilizado por los desarrolladores Java Muchos años de experiencia Groovy&Grails:desarrollo rápido de aplicaciones-25 © 2010 CEFIRE: Actualización del profesorado
  • 31. Software de códigoabierto Hibernate Framework de persistenciaobjeto-relacional Es la base de GORM Mapeaclases de dominio contra lastablas de una base de datos Groovy&Grails:desarrollo rápido de aplicaciones-26 © 2010 CEFIRE: Actualización del profesorado
  • 32. Software de códigoabierto SiteMesh Renderizado HTML Patrón de diseñoDecorator Groovy&Grails:desarrollo rápido de aplicaciones-27 © 2010 CEFIRE: Actualización del profesorado
  • 33. Software de códigoabierto Frameworks AJAX Script.aculo.us jQuery Prototype Groovy&Grails:desarrollo rápido de aplicaciones-28 © 2010 CEFIRE: Actualización del profesorado
  • 34. Software de códigoabierto Tomcat Contenedor web No es el únicosobre el quefunciona Grails Groovy&Grails:desarrollo rápido de aplicaciones-29 © 2010 CEFIRE: Actualización del profesorado
  • 35. Software de códigoabierto HSQLDB Gestor de base de datos Almacenamiento en memoriao en disco Groovy&Grails:desarrollo rápido de aplicaciones-30 © 2010 CEFIRE: Actualización del profesorado
  • 36. Software de códigoabierto JUnit Framework para la realización de tests unitarios y de integración Muyextendido en Java Groovy&Grails:desarrollo rápido de aplicaciones-31 © 2010 CEFIRE: Actualización del profesorado
  • 37. Arquitectura Groovy&Grails:desarrollo rápido de aplicaciones-32 © 2010 CEFIRE: Actualización del profesorado
  • 38. Arquitectura Herramientas en líneade comandos (GANT) Facilita la escritura de código Facilita la gestión de nuestrosproyectos Gant es un sistema de automatización de tareasbasado en Apache Ant Groovy&Grails:desarrollo rápido de aplicaciones-33 © 2010 CEFIRE: Actualización del profesorado
  • 39. Arquitectura Ejecución de un proyecto en Grails Groovy&Grails:desarrollo rápido de aplicaciones-34 © 2010 CEFIRE: Actualización del profesorado
  • 40. Características de Grails Scaffolding “Generaciónautomática de códigoparalascuatrooperacionesbásicas de cualquieraplicación, que son la creación, lectura, ediciónyborrado” Groovy&Grails:desarrollo rápido de aplicaciones-35 © 2010 CEFIRE: Actualización del profesorado
  • 41. Características de Grails Scaffolding Clase de dominio Groovy&Grails:desarrollo rápido de aplicaciones-36 © 2010 CEFIRE: Actualización del profesorado class Libro{ String titulo static constraints = { title(blank:false) } }
  • 42. Características de Grails Scaffolding dinámico Controlador de la clase Libro Vistas de la clase Libro: creadas al vuelo Groovy&Grails:desarrollo rápido de aplicaciones-37 © 2010 CEFIRE: Actualización del profesorado class LibroController{ def scaffold = Libro }
  • 43. Características de Grails Scaffolding estático Controlador de la clase Libro Groovy&Grails:desarrollo rápido de aplicaciones-38 © 2010 CEFIRE: Actualización del profesorado grails generate-all Libro class LibroController{ def index = {…} def list = {…} def show = {…} def create = {…} def save = {…} …. }
  • 44. Características de Grails Scaffolding estático Vistas de la clase Libro · create.gsp · edit.gsp · list.gsp · show.gsp Groovy&Grails:desarrollo rápido de aplicaciones-39 © 2010 CEFIRE: Actualización del profesorado grails generate-all Libro
  • 45. Características de Grails Tests Tests unitarios Tests de integración Tests funcionales Groovy&Grails:desarrollo rápido de aplicaciones-40 © 2010 CEFIRE: Actualización del profesorado
  • 46.
  • 49. Restricciones en las propias clases de dominioGroovy&Grails:desarrollo rápido de aplicaciones-41 © 2010 CEFIRE: Actualización del profesorado
  • 50. Características de Grails Plugins Seguridad AJAX Realización de tests Búsqueda Informes Groovy&Grails:desarrollo rápido de aplicaciones-42 © 2010 CEFIRE: Actualización del profesorado
  • 51. Ejemplosdesarrolladoscon Grails Jobsket (http://www.jobsket.com) Uifi (http://www.uifi.es) Aloja (http://www4.uc3m.es/aloja) ManagerT1 (http://www.managert1.com) Groovy&Grails:desarrollo rápido de aplicaciones-43 © 2010 CEFIRE: Actualización del profesorado
  • 52. Enlaces de interés http://groovy.codehaus.org http://grails.org http://www.escueladegroovy.com http://www.jtech.ua.es/grails Groovy&Grails:desarrollo rápido de aplicaciones-44 © 2010 CEFIRE: Actualización del profesorado
  • 53. Bibliografía Groovy in Action(Manning) Beginning Groovy and Grails (Apress) Grails, a quick start guide (Pragmatic programmers) Groovy&Grails:desarrollo rápido de aplicaciones-45 © 2010 CEFIRE: Actualización del profesorado
  • 54. Contacto http://www.frangarcia.net fgarciarico@gmail.com http://www.twitter.com/frangarcia http://www.linkedin.com/in/frangarcia Groovy&Grails:desarrollo rápido de aplicaciones-46 © 2010 CEFIRE: Actualización del profesorado

Notas del editor

  1. - Paraquealgo se autodenominecomo genial, tienequeestarmuyseguro de simismo, al igualquealguiencuando le pone supropionombre a unaempresao un producto. Hay más de 100 lenguajesque se puedenejecutar en la Máquina Virtual de Java. Fuente: http://en.wikipedia.org/wiki/List_of_JVM_languages. Ágil porque nos ahorra mucha de la verborrea que siempre tiene Java y dinámico porque su tipado de datos es dinámico, es decir, es Groovy quien se encarga de elegir que tipo de datos es cada objeto de nuestras aplicaciones, aunque si lo deseamos, podemos especificárselo nosotros mismos.
  2. - Cuandovemosunaclaseo un script en Groovy, detectaremossusimilitud con Java, aunque también notaremos como se agiliza el código- Se puededecirque Groovy esunasuperclase de Java, puestoquepuedeutilizartodaslascaracterísticas de Java junto con algunasmáspropias de Groovy- Uno de los aspectosquemásrechazan de Java muchosdesarrolladoresessuverborrea en determinadasocasionesy se necesitademasiadocódigoparahacermuypoco.
  3. A los programadores Java, puestoque en el fondo Groovy es JavaA los programadores de scripts, puestoquees un lenguajemuyexpresivoyquepuedeconseguir mucho con muypococódigo, algoque a estetipo de desarrolladores les encanta.A los programadoreságilesyextremosyaquepuedenimplementarfácilmentesusteorias (SCRUM, XP)
  4. En Java, un simple programaqueimprima el típicoHolaMundo, suponeescribirmuchaslíneas de código. En Groovy se evita mucho de estecódigoparaconseguir lo mismo.Al evitarestecódigo “innecesario”, se aumenta la expresividad del lenguaje, puestoque con menos se dice másGroovy importaautomáticamente los paquetesgroovy.lang.*, groovy.util.*, java.lang.*, java.util.*, java.net.* yjava.io.*, asícomolasclasesjava.Math.BigIntegeryjava.Math.BigDecimal, asíquesiempre vas a poderutilizartodasestasclases sin necesidad de queseanimportadossuspaquetes al inicio del programa. Estotambiénesdiferente a Java, dondesólo se importaautomáticamente el paquetejava.lang.*.
  5. Esta sería una típica definición de una clase en Groovy con su getter y su setter. Notamos la ausencia de puntos y comas. Ya empezamos a ahorrarnos código innecesario
  6. Además de las clases en Groovy, también podemos tener scripts dentro de las mismas clases para realizar determinadas acciones sin necesidad de tener un método main. En caso de que necesitemos pasar argumentos a nuestro código Groovy.
  7. Este sería un bean en Java que define la clase Libro con una única propiedad, sobre el cual se definen sus getters y sus setters
  8. Este es el mismo bean en Groovy. En Groovy si tenemos una propiedad pública, automáticamente se crea el getter y el setter de dicha propiedad. En esta ocasión, si no le indicamos nada a la propiedad titulo, esta se configura automáticamente como privada, sin embargo, se creará como públicos sus métodos getter y setter.
  9. Estoque los programadores LAMPven normal, en Java no estan obvio y suele necesitarse mucho código para conseguir lo mismo. Si utilizamos comillas dobles, no es necesario escapar en las cadenas de texto.
  10. Groovy es un lenguaje que implementa un tipado dinámico de datos. Esto consiste en que es Groovy quien decide (si el programador no indica otra cosa diferente) que tipo de datos es una variable.
  11. Como vemos en el anterior código, en las dos primeras declaraciones de variables, dejamos que sea Groovy quien se encargue de asignarle el tipo de datos a las variables a y b, mientras que en las dos segundas le especificamos un tipo de datos primitivo aunque sabemos que Groovy lo va a tratar como tipo de dato referencia.Por último, en las dos últimas especificamos directamente el tipo de dato referencia que estamos definiendo
  12. Groovy hereda de Java los típicos if-else, while, switch y try-catch-finally de Java, pero modifica la forma en la que se implementan los bucles for. Cualquier variable que sea iterable va a poder ser utilizada en un bucle for
  13. El programador se olvida de determinados aspectos de configuración, siempre que sigan las convenciones establecidas por los desarrolladores.
  14. Comentarque en la versión 1.2 se añade la posibilidad de utilizar Tomcat comocontenedorde aplicaciones. Hacer hincapie en que no es único sobre el que funcionarán nuestras aplicaciones hechas en Grails, sino que simplemente es este el que viene en la distribución de Grails para ejecutar nuestra aplicación
  15. Comentar los tres niveles por defecto con los que viene Grails, (desarrollo, test y producción) y que posteriormente veremos un ejemplo del fichero de configuración del acceso a la base de datos
  16. Comentar la existenciatanto del scaffolding estáticocomoel dinámico. Comentar que posteriormente veremos en funcionamiento el scaffolding en Grails. Gracias a este scaffolding, Grails genera automáticamente tanto los métodos de los controladores, como las vistas para realizar las operaciones a partir de una clase de dominio.
  17. Comentar la existenciatanto del scaffolding estáticocomoel dinámico. Comentar que posteriormente veremos en funcionamiento el scaffolding en Grails. Gracias a este scaffolding, Grails genera automáticamente tanto los métodos de los controladores, como las vistas para realizar las operaciones a partir de una clase de dominio.
  18. Comentar que los métodos del controlador de la clase Libro son los que hay en una plantilla de Grails y que pueden ser modificados fácilmente por nosotros para realizar una serie de cambios y así poder crear la máquina de crear aplicaciones.
  19. Comentar la existenciatanto del scaffolding estáticocomoel dinámico. Comentar que posteriormente veremos en funcionamiento el scaffolding en Grails. Gracias a este scaffolding, Grails genera automáticamente tanto los métodos de los controladores, como las vistas para realizar las operaciones a partir de una clase de dominio.
  20. Comentar la existenciatanto del scaffolding estáticocomoel dinámico. Comentar que posteriormente veremos en funcionamiento el scaffolding en Grails. Gracias a este scaffolding, Grails genera automáticamente tanto los métodos de los controladores, como las vistas para realizar las operaciones a partir de una clase de dominio.
  21. Los tests unitarios son aquellos que comprueban la validez de nuestras clases sin tener en cuenta las relaciones con el resto del sistema (otras clases, sistema de ficheros, conexiones de red, etc)Los tests de integración comprueban la validez de nuestras clases cuando se relacionan con el resto del sistema (otras clases, sistema de ficheros, conexiones de red, etc)Los tests funcionales comprueban la funcionalidad de nuestra aplicación. Selenium y Canoo son dos frameworks que nos permitirán desarrollar este tipo de tests
  22. El mapeo objeto-relacional nos permite convertir datos obtenidos de una base de datos relacional para poder trabajar con los paradigmas de los lenguajes orientados a objetos
  23. Comentar la comunidadcadavezmásgrande de pluginsdesarrolladosporlos usuarios. Hay cerca de 350 plugins disponibles para la comunidad de desarrolladores Grails. Este número sigue en aumento.